package com.yzf.enterprise.entity;

import java.time.LocalDateTime;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 * 用户表
 * </p>
 *
 * @author yunzhangfang
 * @since 2020-05-28
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class User implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键Id
     */
    private Long userId;

    /**
     * 公司id
     */
    private Long companyId;

    /**
     * 部门id（钉钉）
     */
    private String ddId;

    /**
     * 上一次的部门Id(钉钉)
     */
    private String lastDdId;

    /**
     * 钉钉上分配的unionid
     */
    private String ddUserId;

    /**
     * 姓名
     */
    private String userName;

    /**
     * 用户账号
     */
    private String userKey;

    /**
     * 密码
     */
    private String password;

    /**
     * 手机号
     */
    private String mobile;

    /**
     * 工号
     */
    private String jobNum;

    /**
     * 职务
     */
    private String position;

    /**
     * 邮箱
     */
    private String email;

    /**
     * 公司邮箱
     */
    private String orgEmail;

    /**
     * 入职时间
     */
    private String hiredDate;

    /**
     * 办公地
     */
    private String workplace;

    /**
     * 备注
     */
    private String remark;

    /**
     * 是否是管理员(0 否、1 是)
     */
    private Boolean isAdmin;

    /**
     * 是否是主管(0 否、1 是)
     */
    private Boolean isBoss;

    /**
     * 是否是高管(0 否、1 是)
     */
    private Boolean isSenior;

    /**
     * 状态：0正常、1停用、2删除
     */
    private Integer status;

    /**
     * 创建日期
     */
    private LocalDateTime createTime;

    /**
     * 最后修改密码的日期
     */
    private LocalDateTime lastPasswordResetTime;

    /**
     * 初始化是否完成 0未完成 1完成
     */
    private Boolean isInit;

    /**
     * 职级(老板,高管,主管,员工)
     */
    private String positionClass;

    /**
     * 上一次的职级(老板,高管,主管,员工)
     */
    private String lastPositionClass;

    /**
     * 更新组织架构时间
     */
    private LocalDateTime updateTime;


}
